<?php
/*/////////////////////////////////////////////////////////////////////////
//	Esta clase es la responsable de manejar los datos de la tabla usuario
/////////////////////////////////////////////////////////////////////////*/
	
	
class User
{			
	var $code;
	var $name;
	var $phone;
	var $login;
	var $pass;
	var $type;
	var $status;
	var $email;
	var $img;
			
	function User ()
	{
		$code  = 0;
		$dependencia  = '';
		$name  = '';
		$phone = '';
		$login = '';
		$pass  = '';
		$img  = '';
		$email = '';
		$type  = 0;	
		$status= 0;
	}
	
	
	////////////////////////////////////////////////////////////////////////////////////
	// addUser: Esta funcion es la responsable de agregar un usuario a la B.D
	////////////////////////////////////////////////////////////////////////////////////
	function addUser($data)
	{
		$sql = "
		 INSERT INTO  user (
		`use_code` ,
		`use_name` ,
		`use_dependencia` ,
		`use_phone` ,
		`use_email` ,
		`use_login` ,
		`use_password` ,
		`use_original` ,
		`use_rename` ,
		`use_status` ,
		`use_type`,
		`use_date_create`
		)
		VALUES (
		'NULL' ,  '".$data->name."','".$data->dependencia."',  '".$data->phone."',  '".$data->email."',  '".$data->login."',  '".$data->password."',  '".$data->original."',  '".$data->renam."',  '1',  '".$data->type."','".date("Y-m-d")."');";	
		
		return mysql_query($sql);
		
	}
			
			
			
	//////////////////////////////////////////////////////////////////////////////////
	// userList: Esta funcion es la encargada de listar los usuarios que existiran en el sitio.
	///////////////////////////////////////////////////////////////////////////////		
	function userList($inicio = 0,$cantidad = 0,$search='',$order_by='')
	{
		
		$where = '';		
		if($search != '')
		$where = " AND (use_name like '%".$search."%'
				   OR use_dependencia like '%".$search."%'		           
				   OR use_phone like '%".$search."%' 
				   OR use_email like '%".$search."%' 
				   OR use_login like '%".$search."%')";		
		
		$sql      = "SELECT * FROM user WHERE `use_status`<> 4 ".$where.$order_by." LIMIT ".$inicio.",".$cantidad;	
		$consult  = mysql_query($sql);
		$data;
		$i = 0;
		while($row = mysql_fetch_array($consult))
		{
			$data[$i]->code     = $row['use_code'];
			$data[$i]->name     = $row['use_name'];
			$data[$i]->dependencia   = $row['use_dependencia'];
			$data[$i]->phone    = $row['use_phone'];
			$data[$i]->email    = $row['use_email'];
			$data[$i]->login    = $row['use_login'];
			$data[$i]->password = $row['use_password'];
			$data[$i]->original = $row['use_original'];
			$data[$i]->renam    = $row['use_rename'];	
			$data[$i]->status   = $row['use_status'];	
			$data[$i]->type     = $row['use_type'];
			$i++;				
		}
		return $data;
	}		
	
	
	
	
	//////////////////////////////////////////////////////////////////////////////////
	// getUserData: Esta funcion es la encargada de obtener los datos de un usuario
	// parameter     : $code-> es el codigo del usuario al que se le van a obtener los datos
	// return        : $data-> son los datos del usuario encontrado
	///////////////////////////////////////////////////////////////////////////////		
	function getUserData($code)
	{		
		$sql      = "SELECT * FROM user WHERE use_code = ".$code;
		$consult  = mysql_query($sql);
		
		
		$row = mysql_fetch_array($consult);
		
			$data->code     	= $row['use_code'];
			$data->name     	= $row['use_name'];
			$data->dependencia  = $row['use_dependencia'];
			$data->phone    	= $row['use_phone'];
			$data->email    	= $row['use_email'];
			$data->login    	= $row['use_login'];
			$data->password 	= $row['use_password'];
			$data->original 	= $row['use_original'];
			$data->renam    	= $row['use_rename'];	
			$data->status   	= $row['use_status'];	
			$data->type     	= $row['use_type'];
			$data->date_create  = $row['use_date_create'];
		return $data;
	}
	
		//////////////////////////////////////////////////////////////////////////////////
	// getDependencia : Esta funcion es la encargada de obtener una dependencia
	// parameter      : $code-> es el codigo del usuario al que se le van a obtener los datos
	// return         : $data-> son los datos del usuario encontrado
	///////////////////////////////////////////////////////////////////////////////		
	function getDependencia($code)
	{		
		$sql      = "SELECT use_dependencia FROM user WHERE use_code = ".$code;
		$consult  = mysql_query($sql);
		
		
		$row = mysql_fetch_array($consult);
			
			$data->dependencia  = $row['use_dependencia'];
			
		return $data;
	}
	
	
	//////////////////////////////////////////////////////////////////////////////////
	// editUser      : Esta funcion es la encargada de editar los datos de un usuario
	// parameter     : $new_data -> es el array con los datos a editar
	//////////////////////////////////////////////////////////////////////////////////
	function editUser($new_data)
	{
	$nuevo_archivo = '';
	if($new_data->original!='')
	{
		$nuevo_archivo =
		"`use_original` = '".$new_data->original."',
		`use_rename` = '".$new_data->renam."',";
	}
	
	$sql=
	"UPDATE `user` SET 
	`use_name`     = '".$new_data->name."',
	`use_dependencia` = '".$new_data->dependencia."',
	`use_phone`    = '".$new_data->phone."',
	`use_email`    = '".$new_data->email."',
	`use_login`    = '".$new_data->login."',
	`use_password` = '".$new_data->password."',$nuevo_archivo
	`use_status`   = '".$new_data->status."',
	`use_type`     = '".$new_data->type.
	"' WHERE `user`.`use_code` =".$new_data->edit_code.";";
		
	return mysql_query($sql);
	}
	
	
	//////////////////////////////////////////////////////////////////////////////////
	// deleteUser    : Esta funcion es la encargada de eliminar un usuario
	// parameter     : $code -> es el codigo del usuario a eliminar
	//////////////////////////////////////////////////////////////////////////////////
	function deleteUser($code)
	{
		$sql=
		"UPDATE `user` SET `use_status` =  '4' WHERE `use_code` =".$code;			
		return mysql_query($sql);
	}
	

	//////////////////////////////////////////////////////////////////////////////////
	// getUserAcces    : Esta funcion es la encargada de dar las propiedades de acceso que tiene un usuario a los mudulos.
	// parameter       : $code -> es el codigo del usuario qu vamos a obtener las propiedades.
	// return          : las propiedades de acceso al usuario.
	//////////////////////////////////////////////////////////////////////////////////
	function getUserAcces($code)
	{
		$sql=
		"SELECT * FROM user AS us, user_property AS us_pr WHERE us.use_code = us_pr.use_code AND us.use_code =".$code;
		$consult  = mysql_query($sql);		
		$row = mysql_fetch_array($consult);
		
		
		$consult  = mysql_query($sql);
		$data = array();
		$i = 0;
		while($row = mysql_fetch_array($consult))
		{			
			$data[$i]->code     		 = $row['use_code'];
			$data[$i]->name     		 = $row['use_name'];
			$data[$i]->uspr_property     = $row['uspr_property'];
			$data[$i]->mod_code          = $row['mod_code'];
			
			//necesitamos saber el nombre del modulo
			$sql2="SELECT mod_name FROM module WHERE mod_code = ".$data[$i]->mod_code;
			$consult2  = mysql_query($sql2);		
			$row2      = mysql_fetch_array($consult2);
			/////////////////////////////////////////			
			$data[$i]->mod_name          = $row2['mod_name'];
			
			$i++;				
		}
		return $data;		
	}
	
	
	//////////////////////////////////////////////////////////////////////////////////
	// deleteUser    : Esta funcion es la encargada de eliminar un usuario
	// parameter     : $code -> es el codigo del usuario a eliminar
	//////////////////////////////////////////////////////////////////////////////////
	function setProperty($property,$mod_code,$code)
	{
		$sql="UPDATE `user_property` SET `uspr_property` = '".$property."' WHERE `mod_code` =".$mod_code." AND `use_code` =".$code;			
		return (mysql_query($sql));		
	}
	
	/////////////////////////////////1///////////////////////////////
	
	///////////////////////////////////////////////////////////////////////////////
	// validateAccount: Esta funcion es la encargada de obtener los datos de un usuario en especifico
	//
	// parameter: login --> nick que identifica al usuario en el sistema.
	//
	// Retorna: 
	//
	// Autor: j.s.l.p
	// Fecha de Creación: 03/06/2010
	//
	// Modificaciones:
	///////////////////////////////////////////////////////////////////////////////
	
			
	function validateAccount($email,$pass)
	{
	
		$sql = "SELECT * FROM user WHERE use_login = '".$email."' AND use_password = '".$pass."'";
		$consulta = mysql_query($sql);	
		
		if($row=mysql_fetch_array($consulta))
		{
			$this->code		= $row['use_code'];
			$this->name		= $row['use_name'];
			$this->phone	= $row['use_phone'];
			$this->login	= $row['use_login'];
			$this->pass		= $row['use_password'];
			$this->email	= $row['use_email'];
			$this->type		= $row['use_type'];
			$this->status	= $row['use_status'];
			$this->img		= $row['use_rename'];
			return true;
		}
		else
			return false;			
	}

	///////////////////////////////////////////////////////////////////////////////
	// countUsers: Esta funcion permite saber en TOTAL cuantos usuarios existen en la base de datos, teniendo en cuenta los parametros de entrada
	//
	// parameter: seach --> sirve para buscar por nombre, telefono, email o login (puede venir vacio)
	//
	// Retorna: la cantidad de usuarios encontrados
	//
	// Autor: j.s.l.p
	// Fecha de Creación: 05/06/2010
	//
	// Modificaciones:
	///////////////////////////////////////////////////////////////////////////////
	public function countUsers($search='')
	{
		$where = '';
		if($search != '')
		$where = " AND (use_name like '%".$search."%' 
		           OR use_phone like '%".$search."%' 
				   OR use_email like '%".$search."%' 
				   OR use_login like '%".$search."%')";		
		
		
		$sql = "SELECT count(*) AS cant FROM user WHERE `use_status`<> 4 ".$where;
	
		$consulta = mysql_query($sql);
		$row = mysql_fetch_array($consulta);
			
		return $row['cant'];
	}
	
	
	//////////////////////////////////////////////////////////////////////////////////
	// listUserTypeSales: Esta funcion es la encargada de listar los usuarios que existiran en el sitio.
	///////////////////////////////////////////////////////////////////////////////		
	function listUserTypeSales()
	{		
		$sql      = "SELECT use_code, use_name FROM `user` WHERE (`use_type`='Sales' OR `use_type`='Sales Manager') AND `use_status`<>4";
		$consult  = mysql_query($sql);
		$data;
		$i = 0;
		while($row = mysql_fetch_array($consult))
		{
			$data[$i]->code     = $row['use_code'];
			$data[$i]->name     = $row['use_name'];			
			$i++;				
		}
		return $data;
	}		
	
	///////////////////////////////////////////////////////////////////////////////
	// countUsersSales: Esta funcion permite saber en TOTAL cuantos usuariostipo vendedor existen en el sitio
	///////////////////////////////////////////////////////////////////////////////
	public function countUsersSales($search='')
	{
		$where = '';
		if($search != '')
		$where = " AND (use_name like '%".$search."%' 
		           OR use_phone like '%".$search."%' 
				   OR use_email like '%".$search."%' 
				   OR use_login like '%".$search."%')";		
		
		
		$sql = "SELECT count(*) AS cant FROM user WHERE `use_status`<> 4 AND (use_type == 'Sales Manager' OR use_type='Sales') ".$where;
	
		$consulta = mysql_query($sql);
		$row = mysql_fetch_array($consulta);
			
		return $row['cant'];
	}
	
	//////////////////////////////////////////////////////////////////////////////////
	// listDeletedUsers: Esta funcion es la encargada de listar los usuarios eliminados del sitio
	///////////////////////////////////////////////////////////////////////////////		
	function listDeletedUsers($inicio = 0,$cantidad = 0,$search='',$order_by='')
	{
		
		$where = '';		
		if($search != '')
		$where = " AND (use_name like '%".$search."%'		           
				   OR use_phone like '%".$search."%' 
				   OR use_email like '%".$search."%' 
				   OR use_login like '%".$search."%')";		
		
		$sql      = "SELECT * FROM user WHERE `use_status`= 4 ".$where.$order_by." LIMIT ".$inicio.",".$cantidad;	
		$consult  = mysql_query($sql);
		$data;
		$i = 0;
		while($row = mysql_fetch_array($consult))
		{
			$data[$i]->code     = $row['use_code'];
			$data[$i]->name     = $row['use_name'];
			$data[$i]->phone    = $row['use_phone'];
			$data[$i]->email    = $row['use_email'];
			$data[$i]->login    = $row['use_login'];
			$data[$i]->password = $row['use_password'];
			$data[$i]->original = $row['use_original'];
			$data[$i]->renam    = $row['use_rename'];	
			$data[$i]->status   = $row['use_status'];	
			$data[$i]->type     = $row['use_type'];
			$i++;				
		}
		return $data;
	}
	
	///////////////////////////////////////////////////////////////////////////////
	// countDeletedUsers: Esta funcion permite saber en TOTAL cuantos usuarios eliminados existen en el sitio
	///////////////////////////////////////////////////////////////////////////////
	public function countDeletedUsers($search='')
	{
		$where = '';
		if($search != '')
		$where = " AND (use_name like '%".$search."%' 
		           OR use_phone like '%".$search."%' 
				   OR use_email like '%".$search."%' 
				   OR use_login like '%".$search."%')";		
		
		
		$sql = "SELECT count(*) AS cant FROM user WHERE `use_status`= 4 ".$where;
	
		$consulta = mysql_query($sql);
		$row = mysql_fetch_array($consulta);
			
		return $row['cant'];
	}
	
	///////////////////////////////////////////////////////////////////////////////
	// userExist: Funcion encargada de verificar que la cuenta insertada no exista
	//
	// parameter: codigo 	codigo del registro que se desea actualizar
	//
	// Autor: j.h.r
	// Fecha de Creación: 07/06/2010
	//
	// Modificaciones:
	///////////////////////////////////////////////////////////////////////////////			
	public function userExist($login)
	{		
		$consulta = mysql_query("SELECT * FROM user WHERE use_login = '".$login."'");
			
		if($row=mysql_fetch_array($consulta))
		{
			$this->code		= $row['use_code'];
			$this->name		= $row['use_name'];
			$this->phone	= $row['use_phone'];
			$this->login	= $row['use_login'];
			$this->pass		= $row['use_password'];
			$this->type		= $row['use_type'];
			$this->status	= $row['use_status'];
			return true;
		}
		else
			return false;
		
	}
	
	///////////////////////////////////////////////////////////////////////////////
	// deleteImage: Funcion encargada de borrar la imagen de un usuario.
	// parameter  : code-> es el codigo del uasuario que se va a eliminar la imagen.
	///////////////////////////////////////////////////////////////////////////////
	function deleteImage($code)
	{
		$sql = "UPDATE `user` SET `use_original` = '',`use_rename` = '' WHERE `use_code` =".$code;
		return mysql_query($sql);
	}
	
	///////////////////////////////////////////////////////////////////////////////
	// userBloq: Funcion encargada de bloquear un usuario
	// parameter: login-> es el login al cual se piensa bloquear
	///////////////////////////////////////////////////////////////////////////////
	function checkExist($login)
	{
		$sql = "SELECT count(*) AS cant FROM user WHERE use_login = '".$login."'";
		$consulta = mysql_query($sql);
		$row = mysql_fetch_array($consulta);
					
		return $row['cant'];
	}
	
	
	///////////////////////////////////////////////////////////////////////////////
	// userBloq: Funcion encargada de bloquear un usuario.
	//
	// parameter: login-> es el login al cual se piensa bloquear.
	//
	// Autor: j.s.l
	// Fecha de Creación: 10/06/2010
	//
	// Modificaciones:
	///////////////////////////////////////////////////////////////////////////////
	function userBloq($code)
	{		
		$sql = "UPDATE `user` SET  `use_status` = 3 WHERE `use_code` = '".$code."'";
		return mysql_query($sql);
	}
	
	
	///////////////////////////////////////////////////////////////////////////////
	// listModule: Funcion encargada de listar los modulos que existen en el sitio
	//
	// Autor: j.s.l
	// Fecha de Creación: 29/06/2010
	//
	// Modificaciones:
	///////////////////////////////////////////////////////////////////////////////

	function listModule()
	{		
		$sql = "SELECT * FROM `module`";
		$consult  = mysql_query($sql);
		
		$i = 0;
		while($row = mysql_fetch_array($consult))
		{
			$data[$i]->code     	= $row['mod_code'];
			$data[$i]->name     	= $row['mod_name'];
			
			$i++;	
		}
		
		return $data;
	}
	
	
	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// selectDependencias: Esta funcion es la encargada de listar los option del select de los usuarios como dependencias
	// @author <J.C.M>
	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	public function selectDependencias ($code=0)
	{
		$sql = "SELECT use_code,use_dependencia FROM user WHERE use_type ='Dependencia'ORDER BY use_code";
		$consulta = mysql_query($sql);
		$cadena ='<option value="" selected="selected">Seleccione...</option>';
		
		while($row=mysql_fetch_array($consulta))
		{
			
			if($row['use_code']==$code)
			{
				$cadena .='<option value="'.$row['use_code'].'" selected="selected">'.$row['use_dependencia'].'</option>';	
			
			}
			else
			{	
				
				$cadena .='<option value="'.$row['use_code'].'">'.$row['use_dependencia'].'</option>';
			}
			
		} 
		
		return $cadena;
		
	}
	
	
	
	
}
?>